package com.minimalist.lindi.service;

import com.minimalist.common.config.mybatis.bo.PageResp;
import com.minimalist.common.entity.lindi.po.LindiPurchaseIndexRecord;
import com.minimalist.common.entity.lindi.vo.purchaseindexrecord.LindiPurchaseIndexRecordQueryVO;
import com.minimalist.common.entity.lindi.vo.purchaseindexrecord.LindiPurchaseIndexRecordVO;
import com.mybatisflex.core.service.IService;

/**
 * 林地指标平台_购买指标记录表 服务层。
 *
 * @author 11987
 * @since 2025-05-12
 */
public interface LindiPurchaseIndexRecordService extends IService<
        LindiPurchaseIndexRecord>{

    /**
     * 添加购买指标记录
     *
     * @param purchaseIndexRecordVO 购买指标记录VO
     */
    void addPurchaseIndexRecord(LindiPurchaseIndexRecordVO purchaseIndexRecordVO);

    /**
     * 根据ID删除购买指标记录
     *
     * @param purchaseIndexRecordId 购买指标记录ID
     */
    void deletePurchaseIndexRecordByPurchaseIndexRecordId(Long purchaseIndexRecordId);

    /**
     * 根据ID更新购买指标记录
     *
     * @param purchaseIndexRecordVO 购买指标记录VO
     */
    void updatePurchaseIndexRecordByPurchaseIndexRecordId(
            LindiPurchaseIndexRecordVO purchaseIndexRecordVO);

    /**
     * 分页查询购买指标记录列表
     *
     * @param queryVO 查询条件
     * @return 分页结果
     */
    PageResp<LindiPurchaseIndexRecordVO> getPagePurchaseIndexRecordList(
            LindiPurchaseIndexRecordQueryVO queryVO);

    /**
     * 根据ID查询购买指标记录
     *
     * @param purchaseIndexRecordId 购买指标记录ID
     * @return 购买指标记录VO
     */
    LindiPurchaseIndexRecordVO getPurchaseIndexRecordByPurchaseIndexRecordId(
            Long purchaseIndexRecordId);

    /**
     * 根据文件ID删除购买指标记录文件
     *
     * @param fileId 文件ID
     */
    void deletePurchaseIndexRecordFileByFileId(Long fileId);
}
